#include <iostream>
#include <limits>
using namespace std;

void changeCinBit(std::istream& is){
    // 如果流失效
    if(!is.good()){
        // 重置流的状态
        is.clear();
        // 清空输入缓冲区的内容
        is.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}

int main(void)
{
    // 当标准输入流失效时，如何重置流的状态，并重新再正常使用流呢？
    int num = 100;
    cin >> num;
    cout << "num = " << num << endl;

    changeCinBit(cin);
    int num2 = 1000;
    cin >> num2;
    cout << "num2 = " << num2 << endl;

    return 0;
}
